package cn.silver.module.system.service;

import cn.silver.framework.mybatis.service.ITreeService;
import cn.silver.module.system.domain.SysDept;
import cn.silver.module.system.bean.DeptBean;
import cn.silver.module.system.param.DeptParam;

/**
 * 部门管理 服务层
 *
 * @author Silver Zhou
 */
public interface ISysDeptService extends ITreeService<SysDept, DeptParam, DeptBean> {



    /**
     * 根据ID查询所有子部门数（正常状态）
     *
     * @param deptId 部门ID
     * @return 子部门数
     */
    long selectNormalChildrenDeptById(String deptId);

    /**
     * 是否存在部门子节点
     *
     * @param deptId 部门ID
     * @return 结果
     */
//    boolean hasChildByDeptId(String deptId);

    /**
     * 查询部门是否存在用户
     *
     * @param deptId 部门ID
     * @return 结果 true 存在 false 不存在
     */
    boolean checkDeptExistUser(String deptId);

    /**
     * 校验部门是否有数据权限
     *
     * @param deptId 部门id
     */
    void checkDeptDataScope(String deptId);
}
